﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq.Mapping;
using System.ComponentModel;

namespace STS.Model
{
    [Table]
    public class DaneLekarzy : INotifyPropertyChanged, INotifyPropertyChanging
    {
        private int id;

        [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false, AutoSync = AutoSync.OnInsert)]
        public int Id
        {
            get { return id; }
            set
            {
                if (id != value)
                {
                    NotifyPropertyChanging("Id");
                    id = value;
                    NotifyPropertyChanged("Id");
                }
            }
        }

        private int idLekarza;

        [Column]
        public int IdLekarza
        {
            get { return idLekarza; }
            set
            {
                if (idLekarza != value)
                {
                    NotifyPropertyChanging("IdLekarza");
                    idLekarza = value;
                    NotifyPropertyChanged("IdLekarza");
                }
            }
        }

        private string pesel;

        [Column]
        public string Pesel
        {
            get { return pesel; }
            set
            {
                if (pesel != value)
                {
                    NotifyPropertyChanging("Pesel");
                    pesel = value;
                    NotifyPropertyChanged("Pesel");
                }
            }
        }

        private string imie;

        [Column]
        public string Imie
        {
            get { return imie; }
            set
            {
                if (imie != value)
                {
                    NotifyPropertyChanging("Imie");
                    imie = value;
                    NotifyPropertyChanged("Imie");
                }
            }
        }

        private string nazwisko;

        [Column]
        public string Nazwisko
        {
            get { return nazwisko; }
            set
            {
                if (nazwisko != value)
                {
                    NotifyPropertyChanging("Nazwisko");
                    nazwisko = value;
                    NotifyPropertyChanged("Nazwisko");
                }
            }
        }

        private string miejsceUrodzenia;

        [Column]
        public string MiejsceUrodzenia
        {
            get { return miejsceUrodzenia; }
            set
            {
                if (miejsceUrodzenia != value)
                {
                    NotifyPropertyChanging("MiejsceUrodzenia");
                    miejsceUrodzenia = value;
                    NotifyPropertyChanged("MiejsceUrodzenia");
                }
            }
        }

        private DateTime dataUrodzenia;

        [Column]
        public DateTime DataUrodzenia
        {
            get { return dataUrodzenia; }
            set
            {
                if (dataUrodzenia != value)
                {
                    NotifyPropertyChanging("DataUrodzenia");
                    dataUrodzenia = value;
                    NotifyPropertyChanged("DataUrodzenia");
                }
            }
        }

        private string nrDowodu;

        [Column]
        public string NrDowodu
        {
            get { return nrDowodu; }
            set
            {
                if (nrDowodu != value)
                {
                    NotifyPropertyChanging("NrDowodu");
                    nrDowodu = value;
                    NotifyPropertyChanged("NrDowodu");
                }
            }
        }

        private string stanCywilny;

        [Column]
        public string StanCywilny
        {
            get { return stanCywilny; }
            set
            {
                if (stanCywilny != value)
                {
                    NotifyPropertyChanging("StanCywilny");
                    stanCywilny = value;
                    NotifyPropertyChanged("StanCywilny");
                }
            }
        }

        private string plec;

        [Column]
        public string Plec
        {
            get { return plec; }
            set
            {
                if (plec != value)
                {
                    NotifyPropertyChanging("Plec");
                    plec = value;
                    NotifyPropertyChanged("Plec");
                }
            }
        }

        private string ulica;

        [Column]
        public string Ulica
        {
            get { return ulica; }
            set
            {
                if (ulica != value)
                {
                    NotifyPropertyChanging("Ulica");
                    ulica = value;
                    NotifyPropertyChanged("Ulica");
                }
            }
        }

        private string nrDomu;

        [Column]
        public string NrDomu
        {
            get { return nrDomu; }
            set
            {
                if (nrDomu != value)
                {
                    NotifyPropertyChanging("NrDomu");
                    nrDomu = value;
                    NotifyPropertyChanged("NrDomu");
                }
            }
        }

        private string nrMieszkania;

        [Column]
        public string NrMieszkania
        {
            get { return nrMieszkania; }
            set
            {
                if (nrMieszkania != value)
                {
                    NotifyPropertyChanging("NrMieszkania");
                    nrMieszkania = value;
                    NotifyPropertyChanged("NrMieszkania");
                }
            }
        }

        private string kodPocztowy;

        [Column]
        public string KodPocztowy
        {
            get { return kodPocztowy; }
            set
            {
                if (kodPocztowy != value)
                {
                    NotifyPropertyChanging("KodPocztowy");
                    kodPocztowy = value;
                    NotifyPropertyChanged("KodPocztowy");
                }
            }
        }

        private string miejscowosc;

        [Column]
        public string Miejscowosc
        {
            get { return miejscowosc; }
            set
            {
                if (miejscowosc != value)
                {
                    NotifyPropertyChanging("Miejscowosc");
                    miejscowosc = value;
                    NotifyPropertyChanged("Miejscowosc");
                }
            }
        }

        private string telKom;

        [Column]
        public string TelKom
        {
            get { return telKom; }
            set
            {
                if (telKom != value)
                {
                    NotifyPropertyChanging("TelKom");
                    telKom = value;
                    NotifyPropertyChanged("TelKom");
                }
            }
        }

        private int idTypLekarza;

        [Column]
        public int IdTypLekarza
        {
            get { return idTypLekarza; }
            set
            {
                if (idTypLekarza != value)
                {
                    NotifyPropertyChanging("IdTypLekarza");
                    idTypLekarza = value;
                    NotifyPropertyChanged("IdTypLekarza");
                }
            }
        }

        private int idOsrodka;

        [Column]
        public int IdOsrodka
        {
            get { return idOsrodka; }
            set
            {
                if (idOsrodka != value)
                {
                    NotifyPropertyChanging("IdOsrodka");
                    idOsrodka = value;
                    NotifyPropertyChanged("IdOsrodka");
                }
            }
        }


        public event PropertyChangedEventHandler PropertyChanged;

        public event PropertyChangingEventHandler PropertyChanging;

        private void NotifyPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        private void NotifyPropertyChanging(string propertyName)
        {
            if (PropertyChanging != null)
            {
                PropertyChanging(this, new PropertyChangingEventArgs(propertyName));
            }
        }
    }
}
